There are numerous computer and communications systems that receive and process messages based on a specified protocol that defines a set of actions and responses that such systems will make in response to every possible event message received by those systems. Typically, the protocol treats the underlying system as a state machine and the manner in which each incoming message is handled is a function of (A) the content of the message, and (B) the current state of the system state machine.
While this basic model appears straightforward, the state machines used to model real computer and communication systems are often complicated, and it has become almost impossible to generate software that accurately implements the incoming message protocols--i.e., that actually handles all possible combinations of internal states and incoming messages in accordance with the protocol specification. Implementing incoming message protocols is so difficult because the number of possible combinations of internal states and incoming messages is often so vast that it is virtually impossible for a human computer programmer to cover all possible contingencies in accordance with the specified protocol using prior art programming techniques.
The present invention solves the problem of generating a program that implements complicated protocols by providing a model or framework that makes it relatively straightforward to define the actions to be taken for all possible combinations of internal states and incoming messages. The program produced using the present invention is an software object "interface" or protocol subsystem that uses a set of tables and function arrays for determining the disposition of all events received by a specified software object or computer system.